import { ref } from 'vue';
import { useToast } from './useToast';
import { useApi } from './useApi';

export function resetPassword() {
    // 发送验证码组合函数

    const { success, error, warning } = useToast();

    const username = ref('');
    const old_password = ref('');
    const new_password = ref('');
    const verify_code = ref('');
    const mode = ref('email'); // 默认验证方式为邮件验证码

    const { loading, result, fetchData } = useApi({
        url: '/auth/reset/password',
        method: 'post',
        manual: true
    });

    // 提交注册
    async function reset() {
        try {
            await fetchData({
                data: {
                    username: username.value,
                    old_password: old_password.value,
                    new_password: new_password.value,
                    verify_code: verify_code.value,
                    mode: mode.value // 使用当前验证方式
                }
            });

            const res = result.value;
            if (res?.code === 0) {
                success(res?.mag || '验证码发送成功');
            } else {
                error(res?.msg || '验证码发送失败');
            }
        } catch (err) {
            console.log(err);
        }
    }

    return {
        username, // 用户名双向绑定
        new_password, // 密码双向绑定
        old_password, // 旧密码双向绑定
        verify_code, // 验证码双向绑定
        mode, // 验证方式
        loading, // 请求loading状态
        reset // 触发修改密码函数
    };
}
